CAN over TCP写入
CAN over TCP写入
组件名称 | CAN over TCP write |
---|---|
工具集 | 算盘组件 |
组件作者 | 雪浪云 - 子陵 |
文档版本 | 20220607v00 |
功能 | 组件将更新的点位表信息封装在CAN帧中,再通过TCP协议传给Server。 |
镜像名称 | suanpan_c_can_over_tcp_write:0_0.0.1 |
开发语言 | C |
简介
该组件作为 TCP Client
1 个 TCP 帧包含若干个 CAN 帧
1 个 CAN 帧包含 13 个字节
帧信息:长度 1 个字节,用于标识该 CAN 帧的一些信息,如类型、长度等
FF:标准帧和扩展帧的标识,1 为扩展帧,0 为标准帧。
RTR:远程帧和数据帧的标识,1 为远程帧,0 为数据帧。
保留:保留值为 0,不可写入 1。
D3~D0:标识该 CAN 帧的数据长度。
帧 ID:长度 4 字节,标准帧有效位是 11 位,扩展帧有效位是 29 位。
如标准帧ID号0x3FF的表示方式:
如扩展帧ID号0x12345678的表示方式:
帧数据:长度 8 个字节,有效长度由帧信息的 D3~D0 的值决定。
如 8 字节有效数据的表达方式:
如 6 字节有效数据的表达方式:
以下例子是一个扩展数据帧,ID 为 0x12345678,包含 8 个字节数据(11h、22h、33h、44h、55h、66h、77h、88h)的帧的表达方式:
以下例子是一个标准数据帧,ID 为 0x3FF,包含 6 个字节数据(11h、22h、33h、44h、55h、66h)的帧的表达方式:
功能描述
支持连接 IEM7110-2G 网管型工业级以太网交换机。
支持导入 CAN 的点位表。
支持连接到 TCP Server。
支持作为 TCP Client 输出更新的点位值。
输入桩
输入端子1
组件有1个输入
端口名称:输入数据
输入类型:JSON格式文本
功能描述:输入更新的点位信息的JSON格式文本
示例:如下所示:
{
"name":"ESTOP",
"value":100
}
输出桩
无
数据接收方式
组件只有1个输入桩,异步模式同步模式任选。
参数配置
上传文件,上传特定格式的 csv 点位表,各个字段要按下面范例中给出的顺序和格式填写,其中 name 字段不能有重复, value 字段默认都是0。canid 是 对应 CAN 帧的ID,byte 值是 CAN 帧数据的第几个 byte ,bitmask 是当前 byte 中哪几个 bit ,offset 是相对于 bit 0 的偏移量。
name | alias | canid | byte | bitmask | offset | value |
---|---|---|---|---|---|---|
Standby | 备用 | 0x18A | 0 | 0xFF | 0 | 0 |
Full_auto | 全自动截割 | 0x18A | 1 | 0x10 | 4 | 0 |
Cutting_start | 开始 | 0x18A | 1 | 0x20 | 5 | 0 |
Cutting_pause | 暂停 | 0x18A | 1 | 0x40 | 6 | 0 |
Cutting_stop | 停止 | 0x18A | 1 | 0x80 | 7 | 0 |
ESTOP | 急停 | 0x18A | 3 | 0x01 | 0 | 0 |
Start | 开机 | 0x18A | 3 | 0x02 | 1 | 0 |
Reset | 复位 | 0x18A | 3 | 0x04 | 2 | 0 |
Bell_set | 警铃设置 | 0x18A | 3 | 0x08 | 3 | 0 |
Bell | 报警 | 0x18A | 3 | 0x10 | 4 | 0 |
Boring | 支护掘进 | 0x18A | 3 | 0x20 | 5 | 0 |
Reserved_1 | 预留1 | 0x18A | 3 | 0x40 | 6 | 0 |
Reserved_2 | 预留2 | 0x18A | 3 | 0x80 | 7 | 0 |
... | ... | ... | ... | ... | ... | ... |
Cutting_up | 截割升 | 0x18B | 0 | 0xFF | 0 | 0 |
Cutting_down | 截割降 | 0x18B | 1 | 0xFF | 0 | 0 |
Cutting_left | 截割左 | 0x18B | 2 | 0xFF | 0 | 0 |
Cutting_right | 截割右 | 0x18B | 3 | 0xFF | 0 | 0 |
Cutting_extend | 截割伸 | 0x18B | 4 | 0x01 | 0 | 0 |
Cutting_shorten | 截割缩 | 0x18B | 4 | 0x02 | 1 | 0 |
Shovel_up | 铲板升 | 0x18B | 4 | 0x04 | 2 | 0 |
Shovel_down | 铲板降 | 0x18B | 4 | 0x08 | 3 | 0 |
Back_support_up | 后支撑升 | 0x18B | 4 | 0x40 | 6 | 0 |
Back_support_down | 后支撑降 | 0x18B | 4 | 0x80 | 7 | 0 |
Left_band_forward | 左履带进 | 0x18B | 5 | 0xFF | 0 | 0 |
Left_band_backward | 左履带退 | 0x18B | 6 | 0xFF | 0 | 0 |
Right_band_forward | 右履带进 | 0x18B | 7 | 0xFF | 0 | 0 |
Right_band_backward | 右履带退 | 0x18C | 0 | 0xFF | 0 | 0 |
Standby_7 | 备用7 | 0x18C | 1 | 0x01 | 0 | 0 |
Standby_8 | 备用8 | 0x18C | 1 | 0x02 | 1 | 0 |
Standby_9 | 备用9 | 0x18C | 1 | 0x04 | 2 | 0 |
Standby_10 | 备用10 | 0x18C | 1 | 0x08 | 3 | 0 |
Standby_11 | 备用11 | 0x18C | 1 | 0x10 | 4 | 0 |
Standby_12 | 备用12 | 0x18C | 1 | 0x20 | 5 | 0 |
Ground | 地面 | 0x18C | 1 | 0x40 | 6 | 0 |
Underground | 井下 | 0x18C | 1 | 0x80 | 7 | 0 |
... | ... | ... | ... | ... | ... | ... |
执行调优
建议不进行特别配置,按照平台的默认分配运行。
使用方法
未部署状态下的操作
前面板操作
添加“输入框”组件
后面板操作
添加“can_over_tcp_write”组件,输入端和“输入框”组件的输出端连接。
在右面板“参数设置”页面,填写TCP Server的地址和端口,比如下面的测试中使用了
10.88.35.251作为地址,32000作为端口号,上传文件处选择要上传的点位表csv文件(文件名必须是test_can.csv),
上传后可以查看
部署状态下的操作
使用网络调试助手作为对接的测试软件,创建一个TCP Server,本地主机地址
10.88.35.251,本地主机端口32000,接受设置为 HEX 可以显示16进制字节数据。
打开Server后,可以看到组件自动连接到了Server,
在前面版的输入框中,输入json字符串
{"name":"ESTOP","value":100},回车发送,TCP Server会接收到三条包含CAN帧的报文
08 00 00 01 8A 00 00 00 01 00 00 00 00
08 00 00 01 8B 00 00 00 00 00 00 00 00
08 00 00 01 8C 00 00 00 00 00 00 00 00